


BISON(1)                 USER COMMANDS                   BISON(1)



NAME
     bison - GNU Project parser generator (yacc replacement)

SYNOPSIS
     bison [ -b _f_i_l_e-_p_r_e_f_i_x ] [ +file-prefix=_f_i_l_e-_p_r_e_f_i_x ] [ -d ]
     [  +defines ] [ -l ] [ +no-lines ] [ -o _o_u_t_f_i_l_e ] [ +output-
     file=_o_u_t_f_i_l_e ] [ -p _p_r_e_f_i_x ] [ +name-prefix=_p_r_e_f_i_x ] [ -t  ]
     [  +debug ] [ -v ] [ +verbose ] [ -V ] [ +version ] [ -y ] [
     +yacc ] [ +fixed-output-files ] file

DESCRIPTION
     _B_i_s_o_n is a parser generator in the  style  of  _y_a_c_c(1).   It
     should  be upwardly compatible with input files designed for
     _y_a_c_c.

     Input files should follow the _y_a_c_c convention of  ending  in
     .y.   Unlike  _y_a_c_c,  the  generated  files do not have fixed
     names, but instead use the prefix of the  input  file.   For
     instance,  a  grammar  description  file named parse.y would
     produce the generated parser in a  file  named  parse.tab.c,
     instead of _y_a_c_c's y.tab.c.

     This description of the options that can be given  to  _b_i_s_o_n
     is  adapted  from  the  node Invocation in the bison.texinfo
     manual, which should be taken as authoritative.

     _B_i_s_o_n supports both traditional  single-letter  options  and
     mnemonic long option names.  Long option names are indicated
     with + instead of -.  Abbreviations  for  option  names  are
     allowed  as  long  as  they  are unique.  When a long option
     takes an argument, like  +file-prefix,  connect  the  option
     name and the argument with =.

     These options can be used with _b_i_s_o_n:

          -b _f_i_l_e-_p_r_e_f_i_x
          +file-prefix=_f_i_l_e-_p_r_e_f_i_x
               Specify a prefix to use for all _b_i_s_o_n output  file
               names.   The names are chosen as if the input file
               were named _f_i_l_e-_p_r_e_f_i_x.c.

          -d
          +defines
               Write an extra output file containing macro defin-
               itions  for  the  token  type names defined in the
               grammar and the semantic value  type  YYSTYPE,  as
               well as a few extern variable declarations.

               If the parser output file  is  named  _n_a_m_e.c  then
               this file is named _n_a_m_e.h.

               This output file is essential if you wish  to  put



Sun Release 4.1        Last change: local                       1






BISON(1)                 USER COMMANDS                   BISON(1)



               the definition of yylex in a separate source file,
               because yylex needs to be able to refer  to  token
               type codes and the variable yylval.

          -l
          +no-lines
               Don't put any #line preprocessor commands  in  the
               parser  file.   Ordinarily  _b_i_s_o_n puts them in the
               parser file so that the C compiler  and  debuggers
               will  associate  errors with your source file, the
               grammar file.  This option causes them to  associ-
               ate  errors  with  the parser file, treating it an
               independent source file in its own right.

          -o _o_u_t_f_i_l_e
          +output-file=_o_u_t_f_i_l_e
               Specify the name _o_u_t_f_i_l_e for the parser file.

               The other output files' names are constructed from
               _o_u_t_f_i_l_e as described under the -v and -d switches.

          -p _p_r_e_f_i_x
          +name-prefix=_p_r_e_f_i_x
               Rename the external symbols used in the parser  so
               that  they  start  with _p_r_e_f_i_x instead of yy.  The
               precise list of symbols renamed is yyparse, yylex,
               yyerror, yylval, yychar, and yydebug.

               For example, if you use -p  c,  the  names  become
               cparse, clex, and so on.

          -t
          +debug
               Output a definition of the macro YYDEBUG into  the
               parser  file, so that the debugging facilities are
               compiled.

          -v
          +verbose
               Write an  extra  output  file  containing  verbose
               descriptions of the parser states and what is done
               for each type of look-ahead token in that state.

               This file also describes all the  conflicts,  both
               those  resolved  by  operator  precedence  and the
               unresolved ones.

               The file's name is made by removing .tab.c  or  .c
               from the parser output file name, and adding .out-
               put instead.

               Therefore, if the input file is  foo.y,  then  the



Sun Release 4.1        Last change: local                       2






BISON(1)                 USER COMMANDS                   BISON(1)



               parser  file is called foo.tab.c by default.  As a
               consequence, the verbose  output  file  is  called
               foo.output.

          -V
          +version
               Print the version number of _b_i_s_o_n.

          -y
          +yacc
          +fixed-output-files
               Equivalent to -o y.tab.c; the parser  output  file
               is  called  y.tab.c,  and  the  other  outputs are
               called y.output and y.tab.h.  The purpose of  this
               switch  is to imitate _y_a_c_c's output file name con-
               ventions.  Thus, the following  shell  script  can
               substitute for _y_a_c_c:

               bison -y $*


FILES
     /usr/local/lib/bison.simple   simple parser
     /usr/local/lib/bison.hairy    complicated parser

SEE ALSO
     _y_a_c_c(1)
     The  _B_i_s_o_n  _R_e_f_e_r_e_n_c_e   _M_a_n_u_a_l,   included   as   the   file
     bison.texinfo in the _b_i_s_o_n source distribution.

DIAGNOSTICS
     ``Self explanatory.''























Sun Release 4.1        Last change: local                       3



